{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f1613f12-9123-41bb-9987-c14429a2615a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "信计221 刘显婷 224180117\n",
      "特征值：[18.4121138 -1.4121138]\n",
      "特征向量：[[ 0.58068355 -0.46535916]\n",
      " [ 0.81412936  0.88512194]]\n",
      "贡献率：[ 1.08306552 -0.08306552]\n",
      "主成分：[0.58068355 0.81412936]\n"
     ]
    }
   ],
   "source": [
    "print('信计221 刘显婷 224180117')\n",
    "import numpy as np\n",
    "# 定义协方差矩阵\n",
    "cov_matrix = np.array([[10, 6], [16, 7]])\n",
    "# 计算特征值和特征向量\n",
    "eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)\n",
    "# 计算特征值之和\n",
    "sum_eigenvalues = np.sum(eigenvalues)\n",
    "# 计算贡献率\n",
    "contribution_ratios = eigenvalues / sum_eigenvalues\n",
    "# 找出贡献率大于 90%的主成分\n",
    "principal_component = None\n",
    "for i, ratio in enumerate(contribution_ratios):\n",
    "    if ratio > 0.9:\n",
    "        principal_component = eigenvectors[:, i]\n",
    "        break\n",
    "print(f\"特征值：{eigenvalues}\")\n",
    "print(f\"特征向量：{eigenvectors}\")\n",
    "print(f\"贡献率：{contribution_ratios}\")\n",
    "if principal_component is not None:\n",
    "    print(f\"主成分：{principal_component}\")\n",
    "else:\n",
    "    print(\"没有贡献率大于 90%的主成分。\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "2ae6e335-ba16-4de2-b022-7e62e8ebd4f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数据形状为： (1567, 590)\n",
      "=======224180117==刘显婷==信计221=======================================\n",
      "降维后数据形状为： (1567, 6)\n",
      "特征值为： [53415197.85687514 21746671.9046592   8248376.61529072  2073880.85929397\n",
      "  1315404.3877583    467693.55734236]\n",
      "特征向量的形状为： (6, 590)\n",
      "=======224180117==刘显婷==信计221=======================================\n",
      "   newdata_feature  newdata_feature_sum\n",
      "0     5.341520e+07             0.612088\n",
      "1     2.174667e+07             0.861284\n",
      "2     8.248377e+06             0.955803\n",
      "3     2.073881e+06             0.979567\n",
      "4     1.315404e+06             0.994641\n",
      "5     4.676936e+05             1.000000\n",
      "=======224180117==刘显婷==信计221=======================================\n"
     ]
    },
    {
     "data": {
      "image/png": "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IiKgghMoBAcHIzg42OhzUVFResvt2rXD6dOny9zfypUrsXLlyoqkQkRkMgRBwA8//IDFixfjp59+AiBeA/njjz9i7NixAMBCiIiIyIRIumaIiIgMCYKA77//Hj4+Pujfvz9++uknWFpaYvLkybhw4YKuECIiIiLTUqGeISIiKnb79m2MHDkSubm5sLa2xuTJkzF37lzd0DgiIiIyTSyGiIgkKiwsRGxsrG4yhIYNG2Lu3LnIzc1FSEgImjZtKnOGREREVB4shoiIyqmgoABbt25FREQErly5gvj4ePTu3RsA8N5778mcHREREUnFYoiI6BHu37+PTZs2YenSpUhJSQEg3oQ6LS1N5syIiIjocbAYIiIqhUqlwpo1a7Bs2TLcvHkTAODk5IS5c+diypQpqFOnjswZEhER0eNgMUREVApzc3N88sknuHnzJlxdXfH2229jwoQJsLa2ljs1IiIiqgQshoiIHsjMzMTGjRsxZ84cKJVKWFhYYOnSpcjOzsZ///tfWFpayp0iERERVSIWQ0RU66WlpWH58uVYv3498vLy0LhxY0yePBkAMHToUJmzIyIioqrCYoiIaq3k5GQsXboUn332GVQqFQDAw8MDbm5u8iZGRERETwSLISKqdQoLCzF16lRs2bIFhYWFAAAfHx8sWLAAAwYMgEKhkDlDIiIiehJYDBFRrWNhYYHr16+jsLAQ/fr1w/z58+Hr68siiIiIqJYxkzsBIqKqdvr0abzyyit69wVasmQJjh07hkOHDqFPnz4shIiIiGoh9gwRUY11/PhxfPDBB/j+++8BAM7Ozli2bBkA4Nlnn5UzNSIiIjIBLIaIqEYRBAHx8fFYvHgxDh8+DAAwMzPDqFGjMGHCBJmzIyIiIlPCYoiIagxBEODv749Dhw4BEK8NGjduHObNm4dWrVrJnB0RERGZGl4zRETVmiAIup8VCgXat28PpVKJadOm4fLly/jss89YCBEREZFRLIaIqFrSaDT46quv0KlTJ5w4cUK3PiwsDFevXsXHH3+MFi1ayJghERERmToWQ0RUrajVanz++edo164dRo8ejT///BMrVqzQPd+kSRM4OTnJmCERERFVF7xmiIiqhfz8fHz++edYsmQJrl27BgBo2LAhZs+ejTfeeEPm7IiIiKg6YjFERNVCv379cOzYMQCAo6Mj3nzzTUydOhV169aV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ycHq1auRmJiItWvXVvCwqLqYNGkSXnjhBRa+RERERPTESS6GRo4ciaysLCxcuBBpaWno2LEj9u3bp5sdLi0tzeCeQ9nZ2di9ezdWrVpldJ937tzBlClTkJ6eDnt7e3Tp0gUJCQno3r17BQ6JTF12djYKCwvRqFEjAGAhRERERESyqNAECsHBwQgODjb6XFRUlME6e3v7Mmd0WLlyJVauXFmRVKiaKSoqQlBQEM6ePYs9e/aUOX06EREREVFVqlAxRFRRERER+Pbbb6FUKqHRaOROh4iIiIhqMUkTKBA9jtjYWCxYsAAAsHbtWnh6esqcERERERHVZiyG6IlISkrCqFGjIAgCJk+eXK5ZBYmIiIiIqhKLIapy+fn5GDZsGG7dugVPT89Sb6RLRERERPQksRiiKhceHo7ff/8djRo1wu7du2FtbS13SkREREREnECBqt5bb72Fv/76CzNmzECLFi3kToeIiIiICACLIXoCGjRogG+++UbuNIiIiIiI9HCYHFWJf//9F1u2bIEgCHKnQkRERERkFIshqnSFhYUYNWoUxo8fj/DwcLnTISIiIiIyisUQVboFCxbg8OHDqFOnDoYPHy53OkRERERERrEYokq1Z88efPTRRwCAzZs3o0OHDjJnRERERERkHIshqjTnz5/HuHHjAAAhISEYMWKEzBkREREREZWOxRBVinv37mHo0KG4e/cufH19sWTJErlTIiIiIiIqE4shqhSHDh3C33//jWbNmiE6OhoWFpy1nYiIiIhMG89YqVIMGTIEBw4cQL169eDo6Ch3OkREREREj8RiiCqNv7+/3CkQEREREZUbh8lRhV2/fh3+/v64dOmS3KkQEREREUnGYogqpKCgAMOHD0dcXBwmTZokdzpERERERJKxGKIKmT17Nk6cOIH69etj06ZNcqdDRERERCQZiyGSbOvWrVi3bh0A4IsvvkDLli1lzoiIiIiISDoWQyRJYmIiXnvtNQDAe++9hxdeeEHmjIiIiIiIKobFEJXbrVu3MHToUOTn5yMgIADvvvuu3CkREREREVUYp9amclOpVGjSpAkAcXicmRlraSIiIiKqvlgMUbk5OTkhPj4eN27cQMOGDeVOh4iIiIjosfBP+/RI//77r+5npVIJd3d3GbMhIiIiIqocFSqG1q1bB3d3d1hbW8PDwwNHjhwpNXb8+PFQKBQG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PvsMmzdvxt9//43Zs2cjOTkZU6dOBQCEhoZi7NixuvjRo0ejUaNGmDBhAs6dO4eEhATMnTsXr776qm6IXHh4OA4ePIgrV64gMTEREydORGJiom6ftVFYWBhWrVoFX19fFBQUyJ0OEREREVGNI3lq7ZEjRyIrKwsLFy5EWloaOnbsiH379sHV1RUAkJaWptebUbduXcTFxWH69Onw9PREo0aNMGLECCxevFgXc+fOHUyZMkV3XVGXLl2QkJCA7t27V8IhVj+7d+/G0qVLAQBLly6FlZWVzBkREREREdU8koshAAgODkZwcLDR56KiogzWtW3btsyZJVauXImVK1dWJJUa559//sH48eMBAHPmzMHw4cPlTYiIiIiIqIaSPEyOqs7du3fx8ssv4969e/D19cVHH30kd0pERERERDUWiyETIQgCXn31Vfzzzz9o3rw5oqOjYWFRoY47IiIiIiIqBxZDJuLOnTu4dOkSLC0tsXPnzlKnKiciIiIiosrBrgcT0aBBAxw7dszghrZERERERFQ12DMkM7VarfvZxsYG/fr1kzEbIiIiIqLag8WQjFQqFfr06YOFCxeiqKhI7nSIiIiIiGoVFkMymj17No4dO4aVK1fixo0bcqdDRERERFSrsBiSyZYtW7B+/XooFAp8+eWXcHZ2ljslIiIiIqJahcWQDE6fPo2pU6cCAN577z0MHDhQ5oyIiIiIiGofFkNP2K1btzBs2DDk5+dj4MCBWLBggdwpERERERHVSiyGnqCioiKMGTMGV69exVNPPYUvvvgCZmb8CIiIiIiI5MAz8SfIzMwMw4cPR4MGDbB79240aNBA7pSIiIiIiGotFkNP2KuvvoqkpCR07txZ7lSIiIiIiGo1FkNPwLVr15CZmalbtrOzkzEbIiIiIiICWAxVuby8PAwePBienp44e/as3OkQEREREdEDFnInUNNoNBrEx8cjISEBtra2iIqKwpkzZ9CkSRM0atRI7vSIiIiIiOgBFkOVKCYmBjNnzsT169cBACtWrAAgTpwQHR2N5s2by5keERERERGVwGKoksTExCAwMBCCIBg8V1RUhFu3bsmQFRERERERlYbXDFUCjUaDmTNnGi2EAEChUGDWrFnQaDRPODMiIiIiIioNi6FKcOTIEd3QOGMEQUBKSgqOHDnyBLMiIiIiIqKysBiqBGlpaZUaR0RE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",
      "text/plain": [
       "<Figure size 1000x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "信计221 224180117 刘显婷\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from sklearn.decomposition import PCA\n",
    "import matplotlib.pyplot as plt\n",
    "# 读取半导体制造数据集，数据以空格分隔，无表头\n",
    "secom = pd.read_table(r\"D:/Users/19202/Desktop/secom.data\", sep=' ', header=None)\n",
    "# 使用均值填充数据中的缺失值\n",
    "data = secom.fillna(secom.mean())\n",
    "print('原始数据形状为：', data.shape)\n",
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "# 创建一个 PCA 对象，设置降维后的维度为 6\n",
    "pca = PCA(n_components=6)\n",
    "# 对数据进行降维处理，fit_transform 方法同时进行拟合和转换\n",
    "newdata = pca.fit_transform(data)\n",
    "print('降维后数据形状为：', newdata.shape)\n",
    "# 输出 PCA 的特征值\n",
    "print('特征值为：', pca.explained_variance_)\n",
    "# 输出特征向量的形状\n",
    "print('特征向量的形状为：', pca.components_.shape)\n",
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "# 创建一个包含特征值和累计贡献率的 DataFrame\n",
    "newdata_feature = pd.DataFrame({'newdata_feature': pca.explained_variance_,\n",
    "                                'newdata_feature_sum': pca.explained_variance_.cumsum() /\n",
    "                                pca.explained_variance_.sum()})\n",
    "print(newdata_feature)\n",
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "# 绘制累计贡献率曲线\n",
    "newdata_feature['newdata_feature_sum'].plot(style='--ko', figsize=(10, 4))\n",
    "# 绘制一条红色的水平参考线，表示累计贡献率为 85%\n",
    "plt.axhline(0.85, color='r', linestyle='--', alpha=0.8)\n",
    "# 在图上添加文本注释\n",
    "plt.text(1, newdata_feature['newdata_feature_sum'].iloc[1] - 0.05,\n",
    "         '第二个主成分累计贡献率超过 85%', fontproperties='SimHei', color='r')\n",
    "# 显示网格线\n",
    "plt.grid()\n",
    "# 显示图形\n",
    "plt.show()\n",
    "print('信计221 224180117 刘显婷')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "dd66ee5b-eb00-49c8-838d-7f3ef5cada6d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n"
     ]
    },
    {
     "data": {
      "image/png": "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EIiHk+Qgow40DDJERORBrHlxMx4VQEREPsTw4mY8KoCIiHyI4cXNeFQAERH5EGte3I5HBRARkc9w5sULeFQAERH5CMOLF/CoACIi8hGGF7fjUQFEROQzDC9uxqMCiIjIh1iw62Y8KoCIiHyI4cXNAgHghRe0jwoIhYCODnbYJSIiz2F4cTv1UQHJ2N+FiIg8iDUvRERE5CqmhpeXXnoJN9xwAyZPngxJkvDMM89kfU1HRwdmzpyJsWPHora2Fps2bTJziEREROQypoaXjz76CFdccQV++ctf6nr+sWPHcP311+Pzn/883njjDfzwhz/Ed77zHezatcvMYRIREZGLmFrzsmTJEixZskT38zdt2oTq6mps2LABAPCpT30K+/btw4MPPoivfOUrJo2SiIiI3MRRNS979+7FokWLEq5dd9112LdvH4aGhjRfMzAwgFgslvBFRERE3uWo8HLy5ElUVVUlXKuqqsK5c+dw6tQpzdesX78egUBg9CvE83yIiIg8zVHhBQAkSUr4WZZlzeuKe++9F9FodPQrzHb4REREnuaoPi8TJ07EyZMnE6719fWhpKQEEyZM0HxNWVkZysrKrBgeEREROYCjZl7mzJmDPXv2JFx78cUXcdVVV2HMmDE2jYqIiIicxNTwcvbsWRw8eBAHDx4EILZCHzx4EL29vQDEks83vvGN0eevXr0a7733HtatW4d33nkHra2taGlpwd13323mMImIiMhFTF022rdvHxYsWDD687p16wAAjY2N2LZtG95///3RIAMAU6dOxfPPP4+77roLv/rVrzB58mT827/9G7dJExER0ShJVipiPSIWiyEQCCAajaKiosLu4RAREZEORj6/HVXzQkRERJQNwwsRERG5CsMLERERuQrDCxEREbkKwwvpE40CkYj2Y5GIeJyIiMgCDC+UXTQKLF4MzJ8PJB+/EA6L64sXM8AQEZElGF4ou/5+oK8POHoUqK+PB5hwWPx89Kh4vL/fzlESEZFPMLxQdsEg0N4O1NbGA0xXVzy41NaKx4NBe8dJRES+4KiDGcnBQiERUJTAMm+euK4El1DIxsEREZGfcOaF9AuFgB07Eq/t2MHgQkRElmJ4If3CYaChIfFaQ0NqES8REZGJGF5IH3Vxbm0t0NmZWAPDAENERBZheHEjpeeKVu8V9fVCbV2ORFKLc+fOTS3iTdcH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odjigQcekKdOnWr3MCy3detWORAI2D0M033uc5+TV69enXDtk5/8pPyDH/zAphHZA4C8e/duu4dhq76+PhmA3NHRYfdQbHPhhRfKW7ZssXsYlurv75enTZsm79mzR54/f75855135n1PzrzY7PTp03jssccwd+5cjBkzxu7h2CIajWL8+PF2D4NMMDg4iP3792PRokUJ1xctWoSuri6bRkV2iUajAODL/96Hh4fxxBNP4KOPPsKcOXPsHo6lvvWtb+GLX/wivvCFLxTsngwvNrnnnnvwsY99DBMmTEBvby9+/etf2z0kW/z5z3/Gv//7v2P16tV2D4VMcOrUKQwPD6OqqirhelVVFU6ePGnTqMgOsixj3bp1uPrqq/GZz3zG7uFY5q233sL555+PsrIyrF69Grt378anP/1pu4dlmSeeeAIHDhzA+vXrC3pfhpcCue+++yBJUsavffv2jT7/e9/7Ht544w28+OKLKC4uxje+8Q3ILm52bPT3B4ATJ05g8eLFuPnmm7FixQqbRl4Yufz+fiJJUsLPsiynXCNv+/a3v40333wTjz/+uN1DsdT06dNx8OBBvPrqq1izZg0aGxtx6NAhu4dliXA4jDvvvBOPPvooxo4dW9B783iAAjl16hROnTqV8Tk1NTWa/wNGIhGEQiF0dXW5djrR6O9/4sQJLFiwALNmzcK2bdtQVOTuHJ3L//7btm3D2rVrcebMGZNHZ5/BwUGcd955+I//+A98+ctfHr1+55134uDBg+jo6LBxdNaSJAm7d+/GTTfdZPdQLHfHHXfgmWeewUsvvYSpU6faPRxbfeELX8All1yCzZs32z0U0z3zzDP48pe/jOLi4tFrw8PDkCQJRUVFGBgYSHjMiJJCDdLvLrroIlx00UU5vVbJjwMDA4UckqWM/P7Hjx/HggULMHPmTGzdutX1wQXI739/LystLcXMmTOxZ8+ehPCyZ88efOlLX7JxZGQFWZZxxx13YPfu3Whvb/d9cAHEn4mb/6434tprr8Vbb72VcO22227DJz/5Sdxzzz05BxeA4cVyr732Gl577TVcffXVuPDCC3H06FH86Ec/wiWXXOLaWRcjTpw4gfr6elRXV+PBBx/EX//619HHJk6caOPIrNPb24vTp0+jt7cXw8PDOHjwIACgrq4O559/vr2DM8G6devQ0NCAq666CnPmzEFzczN6e3t9Ued09uxZdHd3j/587NgxHDx4EOPHj0d1dbWNI7PGt771LezcuRO//vWvUV5ePlrnFAgEMG7cOJtHZ74f/vCHWLJkCUKhEPr7+/HEE0+gvb0dL7zwgt1Ds0R5eXlKfZNS65l33VPe+5XIkDfffFNesGCBPH78eLmsrEyuqamRV69eLUciEbuHZomtW7fKADS//KKxsVHz929ra7N7aKb51a9+JU+ZMkUuLS2VZ8yY4Zutsm1tbZr/Wzc2Nto9NEuk+29969atdg/NEsuXLx/99/7jH/+4fO2118ovvvii3cOyVaG2SrPmhYiIiFzF/cUGRERE5CsML0REROQqDC9ERETkKgwvRERE5CoML0REROQqDC9ERETkKgwvRERE5CoML0REROQqDC9ERETkKgwvRERE5CoML0REROQqDC9ERETkKv8fQ5sMgWSwVOwAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "信计221 224180117 刘显婷\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.decomposition import PCA\n",
    "import matplotlib.pyplot as plt\n",
    "# 加载鸢尾花数据集\n",
    "data = load_iris()\n",
    "y = data.target  # 使用y表示数据集中的标签\n",
    "X = data.data    # 使用X表示数据集中的属性数据\n",
    "# 加载PCA算法，设置降维后主成分数目为2\n",
    "pca = PCA(n_components=2)\n",
    "reduced_X = pca.fit_transform(X)  # 对原始数据进行降维，保存在reduced_X中\n",
    "# 按照鸢尾花的类别将降维后的数据点保存在不同的列表中\n",
    "red_x, red_y = [], []\n",
    "blue_x, blue_y = [], []\n",
    "green_x, green_y = [], []\n",
    "for i in range(len(reduced_X)):\n",
    "    if y[i] == 0:  # Setosa\n",
    "        red_x.append(reduced_X[i][0])\n",
    "        red_y.append(reduced_X[i][1])\n",
    "    elif y[i] == 1:  # Versicolor\n",
    "        blue_x.append(reduced_X[i][0])\n",
    "        blue_y.append(reduced_X[i][1])\n",
    "    else: \n",
    "        green_x.append(reduced_X[i][0])\n",
    "        green_y.append(reduced_X[i][1])\n",
    "# 降维后数据点的可视化\n",
    "plt.scatter(red_x, red_y, c='r', marker='x')\n",
    "plt.scatter(blue_x, blue_y, c='b', marker='D')\n",
    "plt.scatter(green_x, green_y, c='g', marker='.')\n",
    "plt.show()\n",
    "print('信计221 224180117 刘显婷')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "37757243-b883-4549-9e51-0b83b13ec462",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 506 entries, 0 to 505\n",
      "Data columns (total 13 columns):\n",
      " #   Column   Non-Null Count  Dtype   \n",
      "---  ------   --------------  -----   \n",
      " 0   CRIM     506 non-null    float64 \n",
      " 1   ZN       506 non-null    float64 \n",
      " 2   INDUS    506 non-null    float64 \n",
      " 3   CHAS     506 non-null    category\n",
      " 4   NOX      506 non-null    float64 \n",
      " 5   RM       506 non-null    float64 \n",
      " 6   AGE      506 non-null    float64 \n",
      " 7   DIS      506 non-null    float64 \n",
      " 8   RAD      506 non-null    category\n",
      " 9   TAX      506 non-null    float64 \n",
      " 10  PTRATIO  506 non-null    float64 \n",
      " 11  B        506 non-null    float64 \n",
      " 12  LSTAT    506 non-null    float64 \n",
      "dtypes: category(2), float64(11)\n",
      "memory usage: 45.1 KB\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "# 导入 numpy 库，并给它起别名 np，方便后续使用\n",
    "import numpy as np  \n",
    "# 导入 pandas 库，并给它起别名 pd\n",
    "import pandas as pd  \n",
    "# 导入 matplotlib 的 pyplot 模块，并给它起别名 plt，用于绘图\n",
    "import matplotlib.pyplot as plt  \n",
    "# 导入 seaborn 库，并给它起别名 sns，用于数据可视化\n",
    "import seaborn as sns  \n",
    "# 从 sklearn.datasets 中导入 fetch_openml，用于替代 load_boston 加载数据集\n",
    "from sklearn.datasets import fetch_openml  \n",
    "# 加载波士顿房价数据集，这里使用 fetch_openml 函数，指定数据集名称为'boston'，版本为 1\n",
    "boston = fetch_openml(name='boston', version=1)\n",
    "# 获取特征矩阵 X 和目标变量 y，X 是数据集中的特征数据，y 是对应的房价目标值\n",
    "X = boston.data\n",
    "y = boston.target\n",
    "# 将数据转换为 pandas 的 DataFrame 格式，指定列名为波士顿数据集的特征名，方便数据处理和分析\n",
    "df = pd.DataFrame(X, columns=boston.feature_names)\n",
    "# 查看 DataFrame 的信息，包括列的数据类型、非空值数量等，以了解数据的基本情况\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "0e17a3e3-6370-4701-8f99-5b4c1ae35b33",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PTRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.419782</td>\n",
       "      <td>0.284830</td>\n",
       "      <td>-1.287909</td>\n",
       "      <td>-0.272599</td>\n",
       "      <td>-0.144217</td>\n",
       "      <td>0.413672</td>\n",
       "      <td>-0.120013</td>\n",
       "      <td>0.140214</td>\n",
       "      <td>-0.982843</td>\n",
       "      <td>-0.666608</td>\n",
       "      <td>-1.459000</td>\n",
       "      <td>0.441052</td>\n",
       "      <td>-1.075562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.417339</td>\n",
       "      <td>-0.487722</td>\n",
       "      <td>-0.593381</td>\n",
       "      <td>-0.272599</td>\n",
       "      <td>-0.740262</td>\n",
       "      <td>0.194274</td>\n",
       "      <td>0.367166</td>\n",
       "      <td>0.557160</td>\n",
       "      <td>-0.867883</td>\n",
       "      <td>-0.987329</td>\n",
       "      <td>-0.303094</td>\n",
       "      <td>0.441052</td>\n",
       "      <td>-0.492439</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.417342</td>\n",
       "      <td>-0.487722</td>\n",
       "      <td>-0.593381</td>\n",
       "      <td>-0.272599</td>\n",
       "      <td>-0.740262</td>\n",
       "      <td>1.282714</td>\n",
       "      <td>-0.265812</td>\n",
       "      <td>0.557160</td>\n",
       "      <td>-0.867883</td>\n",
       "      <td>-0.987329</td>\n",
       "      <td>-0.303094</td>\n",
       "      <td>0.396427</td>\n",
       "      <td>-1.208727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.416750</td>\n",
       "      <td>-0.487722</td>\n",
       "      <td>-1.306878</td>\n",
       "      <td>-0.272599</td>\n",
       "      <td>-0.835284</td>\n",
       "      <td>1.016303</td>\n",
       "      <td>-0.809889</td>\n",
       "      <td>1.077737</td>\n",
       "      <td>-0.752922</td>\n",
       "      <td>-1.106115</td>\n",
       "      <td>0.113032</td>\n",
       "      <td>0.416163</td>\n",
       "      <td>-1.361517</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.412482</td>\n",
       "      <td>-0.487722</td>\n",
       "      <td>-1.306878</td>\n",
       "      <td>-0.272599</td>\n",
       "      <td>-0.835284</td>\n",
       "      <td>1.228577</td>\n",
       "      <td>-0.511180</td>\n",
       "      <td>1.077737</td>\n",
       "      <td>-0.752922</td>\n",
       "      <td>-1.106115</td>\n",
       "      <td>0.113032</td>\n",
       "      <td>0.441052</td>\n",
       "      <td>-1.026501</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       CRIM        ZN     INDUS      CHAS       NOX        RM       AGE  \\\n",
       "0 -0.419782  0.284830 -1.287909 -0.272599 -0.144217  0.413672 -0.120013   \n",
       "1 -0.417339 -0.487722 -0.593381 -0.272599 -0.740262  0.194274  0.367166   \n",
       "2 -0.417342 -0.487722 -0.593381 -0.272599 -0.740262  1.282714 -0.265812   \n",
       "3 -0.416750 -0.487722 -1.306878 -0.272599 -0.835284  1.016303 -0.809889   \n",
       "4 -0.412482 -0.487722 -1.306878 -0.272599 -0.835284  1.228577 -0.511180   \n",
       "\n",
       "        DIS       RAD       TAX   PTRATIO         B     LSTAT  \n",
       "0  0.140214 -0.982843 -0.666608 -1.459000  0.441052 -1.075562  \n",
       "1  0.557160 -0.867883 -0.987329 -0.303094  0.441052 -0.492439  \n",
       "2  0.557160 -0.867883 -0.987329 -0.303094  0.396427 -1.208727  \n",
       "3  1.077737 -0.752922 -1.106115  0.113032  0.416163 -1.361517  \n",
       "4  1.077737 -0.752922 -1.106115  0.113032  0.441052 -1.026501  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "print(boston.feature_names)\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 导入 StandardScaler 类，用于数据标准化\n",
    "X = StandardScaler().fit_transform(X)\n",
    "# 使用 StandardScaler 对特征矩阵 X 进行标准化处理，fit_transform 方法先拟合数据再进行转换\n",
    "# 转化成 DataFrame 格式方便后续计算\n",
    "x = pd.DataFrame(X, columns=boston.feature_names)\n",
    "# 将标准化后的特征数据 X 转换为 pandas 的 DataFrame 格式，并使用波士顿数据集的特征名作为列名\n",
    "x.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "493b8ece-5fa2-44d5-b6ee-8c1fdb1d4e4e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "kmo:0.8535329794282672, bartlett:0.0\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "from factor_analyzer import FactorAnalyzer, calculate_kmo, calculate_bartlett_sphericity\n",
    "# 从 factor_analyzer 库中导入 FactorAnalyzer、calculate_kmo 和 calculate_bartlett_sphericity，分别用于因子分析、计算 KMO 值和巴特利特球形检验\n",
    "kmo = calculate_kmo(x)\n",
    "# 对数据 x 进行 KMO（Kaiser-Meyer-Olkin）检验，计算 KMO 值\n",
    "bartlett = calculate_bartlett_sphericity(x)\n",
    "# 对数据 x 进行巴特利特球形检验\n",
    "print('kmo:{}, bartlett:{}'.format(kmo[1], bartlett[1]))\n",
    "# 打印 KMO 值和巴特利特球形检验的结果，格式为“kmo:具体值, bartlett:具体值”"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "ec31e1da-79ef-4daa-ba7d-1faed1dd3643",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "      旋转前特征根  旋转前方差贡献率  旋转前方差累计贡献率\n",
      "0   6.126849  0.471296    0.471296\n",
      "1   1.433275  0.110252    0.581548\n",
      "2   1.242617  0.095586    0.677134\n",
      "3   0.857575  0.065967    0.743101\n",
      "4   0.834816  0.064217    0.807318\n",
      "5   0.657407  0.050570    0.857888\n",
      "6   0.535356  0.041181    0.899069\n",
      "7   0.396097  0.030469    0.929538\n",
      "8   0.276943  0.021303    0.950841\n",
      "9   0.220238  0.016941    0.967783\n",
      "10  0.186014  0.014309    0.982091\n",
      "11  0.169303  0.013023    0.995115\n",
      "12  0.063509  0.004885    1.000000\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "Load_Matrix = FactorAnalyzer(rotation=None, n_factors=13, method='principal') #构建因子分析模型\n",
    "Load_Matrix.fit(x) #训练模型 \n",
    "# 获取特征根、方差贡献率、方差累计贡献率 \n",
    "f_contribution_var = Load_Matrix.get_factor_variance() \n",
    "matrices_var = pd.DataFrame() \n",
    "matrices_var[\"旋转前特征根\"] = f_contribution_var[0] \n",
    "matrices_var[\"旋转前方差贡献率\"] = f_contribution_var[1] \n",
    "matrices_var[\"旋转前方差累计贡献率\"] = f_contribution_var[2] \n",
    "print(matrices_var)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "cdccd3f2-c18b-46ce-98aa-881ede71651b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "旋转后的载荷矩阵的贡献率\n",
      "        特征根     方差贡献率   方差累计贡献率\n",
      "0  3.197350  0.245950  0.245950\n",
      "1  3.856824  0.296679  0.542629\n",
      "2  1.748567  0.134505  0.677134\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "Load_Matrix_rotated = FactorAnalyzer(rotation='varimax', n_factors=3, method='principal') \n",
    "Load_Matrix_rotated.fit(x) \n",
    "# 获取特征根、方差贡献率、方差累计贡献率 \n",
    "f_contribution_var_rotated = Load_Matrix_rotated.get_factor_variance() \n",
    "matrices_var_rotated = pd.DataFrame() \n",
    "matrices_var_rotated[\"特征根\"] = f_contribution_var_rotated[0] \n",
    "matrices_var_rotated[\"方差贡献率\"] = f_contribution_var_rotated[1] \n",
    "matrices_var_rotated[\"方差累计贡献率\"] = f_contribution_var_rotated[2] \n",
    "print(\"旋转后的载荷矩阵的贡献率\") \n",
    "print(matrices_var_rotated)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "183e0d31-496d-48fd-8093-1f1be3d92ef9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "# 分析旋转后的成分矩阵 \n",
    "Load_Matrix = Load_Matrix_rotated.loadings_ \n",
    "df = pd.DataFrame(np.abs(Load_Matrix), index = x.columns) \n",
    "plt.figure(figsize=(8, 6)) \n",
    "ax = sns.heatmap(df, annot=True, cmap=\"BuPu\") \n",
    "ax.yaxis.set_tick_params(labelsize=10) # 设置 y 轴字体大小 \n",
    "plt.title(\"Factor Analysis\", fontsize=\"xx-large\") \n",
    "plt.ylabel(\"variable\", fontsize=\"xx-large\")# 设置 y 轴标签 \n",
    "plt.show()# 显示图片"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "9e650a84-2b7b-4c78-9b96-2094705d539b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>factor1</th>\n",
       "      <th>factor2</th>\n",
       "      <th>factor3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.685549</td>\n",
       "      <td>-0.226970</td>\n",
       "      <td>-0.841896</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.988247</td>\n",
       "      <td>0.015251</td>\n",
       "      <td>0.056423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.696199</td>\n",
       "      <td>-0.290960</td>\n",
       "      <td>-0.637551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.708062</td>\n",
       "      <td>-0.747610</td>\n",
       "      <td>-0.246940</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.701774</td>\n",
       "      <td>-0.647997</td>\n",
       "      <td>-0.291726</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>501</th>\n",
       "      <td>-0.844308</td>\n",
       "      <td>0.446867</td>\n",
       "      <td>0.257078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>502</th>\n",
       "      <td>-1.014616</td>\n",
       "      <td>0.586058</td>\n",
       "      <td>0.548477</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>503</th>\n",
       "      <td>-0.794234</td>\n",
       "      <td>0.621349</td>\n",
       "      <td>-0.254063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>504</th>\n",
       "      <td>-0.826730</td>\n",
       "      <td>0.596318</td>\n",
       "      <td>-0.072890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>505</th>\n",
       "      <td>-1.039981</td>\n",
       "      <td>0.589031</td>\n",
       "      <td>0.573152</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>506 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      factor1   factor2   factor3\n",
       "0   -0.685549 -0.226970 -0.841896\n",
       "1   -0.988247  0.015251  0.056423\n",
       "2   -0.696199 -0.290960 -0.637551\n",
       "3   -0.708062 -0.747610 -0.246940\n",
       "4   -0.701774 -0.647997 -0.291726\n",
       "..        ...       ...       ...\n",
       "501 -0.844308  0.446867  0.257078\n",
       "502 -1.014616  0.586058  0.548477\n",
       "503 -0.794234  0.621349 -0.254063\n",
       "504 -0.826730  0.596318 -0.072890\n",
       "505 -1.039981  0.589031  0.573152\n",
       "\n",
       "[506 rows x 3 columns]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "df = pd.DataFrame(Load_Matrix_rotated.transform(x))\n",
    "df.columns = [\"factor1\", \"factor2\", \"factor3\"]\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "c2e8208f-a017-478d-b1c5-c8e9fbf2e261",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n",
      "每个因子的权重\n",
      "0    0.363222\n",
      "1    0.438139\n",
      "2    0.198639\n",
      "Name: 方差贡献率, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "d = matrices_var_rotated[\"方差贡献率\"] \n",
    "weight = d/np.sum(d)\n",
    "print(\"每个因子的权重\")\n",
    "print(weight)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "4e741e71-ff59-4be4-b80f-1f38063532d1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=======224180117==刘显婷==信计221=======================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>factor1</th>\n",
       "      <th>factor2</th>\n",
       "      <th>factor3</th>\n",
       "      <th>综合得分</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.685549</td>\n",
       "      <td>-0.226970</td>\n",
       "      <td>-0.841896</td>\n",
       "      <td>-0.515684</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.988247</td>\n",
       "      <td>0.015251</td>\n",
       "      <td>0.056423</td>\n",
       "      <td>-0.341063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.696199</td>\n",
       "      <td>-0.290960</td>\n",
       "      <td>-0.637551</td>\n",
       "      <td>-0.506998</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.708062</td>\n",
       "      <td>-0.747610</td>\n",
       "      <td>-0.246940</td>\n",
       "      <td>-0.633793</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.701774</td>\n",
       "      <td>-0.647997</td>\n",
       "      <td>-0.291726</td>\n",
       "      <td>-0.596761</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>501</th>\n",
       "      <td>-0.844308</td>\n",
       "      <td>0.446867</td>\n",
       "      <td>0.257078</td>\n",
       "      <td>-0.059816</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>502</th>\n",
       "      <td>-1.014616</td>\n",
       "      <td>0.586058</td>\n",
       "      <td>0.548477</td>\n",
       "      <td>-0.002807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>503</th>\n",
       "      <td>-0.794234</td>\n",
       "      <td>0.621349</td>\n",
       "      <td>-0.254063</td>\n",
       "      <td>-0.066713</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>504</th>\n",
       "      <td>-0.826730</td>\n",
       "      <td>0.596318</td>\n",
       "      <td>-0.072890</td>\n",
       "      <td>-0.053495</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>505</th>\n",
       "      <td>-1.039981</td>\n",
       "      <td>0.589031</td>\n",
       "      <td>0.573152</td>\n",
       "      <td>-0.005816</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>506 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      factor1   factor2   factor3      综合得分\n",
       "0   -0.685549 -0.226970 -0.841896 -0.515684\n",
       "1   -0.988247  0.015251  0.056423 -0.341063\n",
       "2   -0.696199 -0.290960 -0.637551 -0.506998\n",
       "3   -0.708062 -0.747610 -0.246940 -0.633793\n",
       "4   -0.701774 -0.647997 -0.291726 -0.596761\n",
       "..        ...       ...       ...       ...\n",
       "501 -0.844308  0.446867  0.257078 -0.059816\n",
       "502 -1.014616  0.586058  0.548477 -0.002807\n",
       "503 -0.794234  0.621349 -0.254063 -0.066713\n",
       "504 -0.826730  0.596318 -0.072890 -0.053495\n",
       "505 -1.039981  0.589031  0.573152 -0.005816\n",
       "\n",
       "[506 rows x 4 columns]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"=======224180117==刘显婷==信计221=======================================\")\n",
    "df[\"综合得分\"] = np.dot(df, weight) #np.dot 矩阵乘法\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "09b8604a-81b9-4127-8ed2-f303ac5b8523",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
